package cn.stylefeng.guns.sys.modular.system.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.sys.modular.system.entity.AttendAuditBtyArea;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendAuditBtyArchivesParam;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendAuditBtyAreaAndBtyArchivesParam;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendAuditBtyAreaParam;
import cn.stylefeng.guns.sys.modular.system.model.params.AttendEmployeeMonthSynchronousParam;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaAndBtyArchivesResult;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaAuditStatusResult;
import cn.stylefeng.guns.sys.modular.system.model.result.AttendAuditBtyAreaResult;
import cn.stylefeng.roses.core.reqres.response.ResponseData;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  督导设置店长表
 * </p>
 *
 * @author wjk
 * @since 2021-09-15
 */
public interface AttendAuditBtyAreaService extends IService<AttendAuditBtyArea> {

    /**

     */
    /**
     * 新增
     *
     * @author wjk
     * @Date 2021-09-15
     * @param param
     */
    void add(AttendAuditBtyAreaParam param);

    /**
     * 删除
     *
     * @author wjk
     * @Date 2021-09-15
     */
    void delete(AttendAuditBtyAreaParam param);

    /**
     * 更新
     *
     * @author wjk
     * @Date 2021-09-15
     */
    void update(AttendAuditBtyAreaParam param);

    /**
     * 更新dh
     *
     */
    void updateDh(String dhTels,String dh);

    /**
     * 更新kq_dh
     *
     */
    void updateKqDh(String kqDhTels,String kqDh);

    /**
     * 更新yydh
     *
     */
    void updateYydhTels(String yydhTels,String yydh);

    /**
     * 更新dddh
     *
     */
    void updateDddhTels(String dddhTels,String dddh);

    /**
     * 根据人员标识更新手机号
     *
     */
    void updateArchivesTel(String oldTels,String tel);

    /**
     * 查询单条数据，Specification模式
     *
     * @author wjk
     * @Date 2021-09-15
     */
    AttendAuditBtyAreaResult findBySpec(AttendAuditBtyAreaParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author wjk
     * @Date 2021-09-15
     */
    List<AttendAuditBtyAreaResult> findListBySpec(AttendAuditBtyAreaParam param);


    /**
     * 查询分页数据，Specification模式
     *
     * @author wjk
     * @Date 2021-09-15
     */
     LayuiPageInfo findPageBySpec(AttendAuditBtyAreaParam param);


    /**
     * 根据运营经理的名字,和店名模糊匹配获取运营经理的店的列表;
     *
     * @author wjk
     * @Date 2021-10-19
     */
    List<AttendAuditBtyArea> getShowListByYyjlName(String yyjlName, String shopName);


    /**
     * 根据督导的名字,和店名模糊匹配获取督导下的店的列表;
     *
     * @author wjk
     * @Date 2021-09-15
     */
     List<AttendAuditBtyArea> getShowListByDdName(String ddName,String shopName);

    /**
     * 根据督导的名字,和店名模糊匹配获取督导下的店的列表-分页;
     *
     * @author wjk
     * @Date 2021-11-19
     */
    IPage<AttendAuditBtyArea> getShowListByDdNameLayuiPage(Page pageContext, String userName, String shopName);

    /**
     * 若督导列表查询不到数据则查询大店长下的店铺，返回相应的数据
     * @Date 2021-11-19
     */
    IPage<AttendAuditBtyArea> getShowListByDdzNameLayuiPage(Page pageContext, String userName, String shopName);

    /**
     * 根据大店长的名字,和店名模糊匹配获取大店长下的店的列表;
     *
     * @author wjk
     * @Date 2021-09-15
     */

    public List<AttendAuditBtyArea> getShowListByDdzName(String ddzName,String shopName);

    /**
     * 根据考勤店长的名字,和店名模糊匹配获取考勤店长下的店的列表;
     *
     * @author wjk
     * @Date 2021-11-05
     */
    List<AttendAuditBtyArea> getShowListByKqDzName(String kqDzName, String shopName);

    /**
     * 员工信息，督导手机号，设置店长；
     * @author wjk
     * @Date 2021-09-15
     */
    Map<String, String> setEmployeeToDz(AttendAuditBtyArchivesParam attendAuditBtyArchivesParam, String account);

    /**
     * 根据店长的手机号码，店长旗下店的信息；
     * @author wjk
     * @Date 2021-09-16
     */
    AttendAuditBtyArea getShopInfoByDzPhone(String account);
    /**
     * 根据店名匹配获取店的信息;
     *
     * @author wjk
     * @Date 2021-11-05
     */
    AttendAuditBtyArea getShopInfoByDm(String shopName);

    /**
     * 根据考勤店长的手机号获取妖码
     * @param account
     * @author wjk
     * @Date 2021-11-12
     */
    Map<String, String> queryYaoMa(String account);

    /**
     * 查询列表，返回人事档案主表，关联各个月考勤记录的查询
     *
     * @author wjk
     * @Date 2021-11-17
     */
    LayuiPageInfo findPageBySpeclistAttendAudit(AttendAuditBtyAreaAuditStatusResult attendAuditBtyAreaAuditStatusResult);

    /**
     * 查询列表，返回人事档案主表，关联各个月考勤记录的查询,为导出查询，不分页
     *
     * @author wjk
     * @Date 2021-12-01
     */
    List<AttendAuditBtyAreaAuditStatusResult> listAttendAuditForExport(AttendAuditBtyAreaAuditStatusResult attendAuditBtyAreaAuditStatusResult);

    /**
     * 查询列表，返回人事档案主表，关联各个月考勤记录的查询
     *
     * @author wjk
     * @Date 2021-11-17
     */
    Map<String,String> searchSumValue(AttendAuditBtyAreaAuditStatusResult attendAuditBtyAreaAuditStatusResult);

    /**
     * 查询运营经理的列表，
     *
     * @author wjk
     * @Date 2021-12-01
     */
    List<AttendAuditBtyArea> getYyjlList();

    /**
     * 查询列表，返回人事列表中的店，或者人员的一些影响的一些信息
     *
     * @author wjk
     * @Date 2021-12-23
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @return
     */
    LayuiPageInfo pagelistAttendAuditForImpact(AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);

    /**
     * 查询列表，返回人事列表中的店，或者人员的一些影响正常考勤的一些信息，不分页
     *
     * @param attendAuditBtyAreaAndBtyArchivesParam
     * @return
     */
    List<AttendAuditBtyAreaAndBtyArchivesResult> listAttendAuditForImpactForExport(AttendAuditBtyAreaAndBtyArchivesParam attendAuditBtyAreaAndBtyArchivesParam);
    /**
     * 查询列表，统计一些影响正常考勤的一些信息，
     *
     * @author wjk
     * @Date 2021-12-27
     */
    Map<String, String> searchSumValueImpact();


    /**
     * 查询列表，统计一些影响正常考勤的一些信息，
     *
     * @author wjk
     * @Date 2021-12-29
     */
    Map<String, String> queryDzNotInDm();

    /**
     * 获取同步考勤的月份信息
     * @author wjk
     * @Date 2022-02-21
     */
    Map<String, String> getSynchronousMonth();

    /**
     * 月度考勤同步回人事档案
     * @author wjk
     * @Date 2022-02-21
     */
    Map<String, String> synchronousAttendEmployeeMonth(AttendEmployeeMonthSynchronousParam param) throws ParseException;

//    /**
//     * 查询列表，返回人事列表中的店，或者人员的一些影响正常考勤的一些信息
//     * 查询缺少考勤店长的情况
//     *
//     * @author wjk
//     * @Date 2021-12-23
//     */
//    LayuiPageInfo listAttendAuditForImpactNoDz(AttendAuditBtyAreaAuditStatusResult attendAuditBtyAreaAuditStatusResult);















    /*************** 2021-02-10 绩效使用*****************/



    /**
     * 根据电话号码获取在架构中的职位
     *
     * @author wjk
     * @Date 2021-02-10
     */
    String getBtyAreaZwByTel(String tel);

    /**
     * 根据运营经理的电话,和店名模糊匹配获取运营经理的店的列表;
     *
     * @author wjk
     * @Date 2021-02-10
     */
    List<AttendAuditBtyArea> getShowListByYyjlTel(String tel, String shopName);


    /**
     * 根据督导的电话,和店名模糊匹配获取督导下的店的列表;
     *
     * @author wjk
     * @Date 2021-02-10
     */
    List<AttendAuditBtyArea> getShowListByDdTel(String tel,String shopName);

    /**
     * 根据大店长的电话,和店名模糊匹配获取大店长下的店的列表;
     *
     * @author wjk
     * @Date 2021-02-10
     */
    public List<AttendAuditBtyArea> getShowListByDdzTel(String tel,String shopName);

    /**
     * 根据考勤店长的电话,和店名模糊匹配获取考勤店长下的店的列表;
     *
     * @author wjk
     * @Date 2021-02-10
     */
    List<AttendAuditBtyArea> getShowListByKqDzTel(String tel, String shopName);
}
